package eSchool.GUI.Components;

import eSchool.Application.State.DataState;
import eSchool.BL.BasicEntityObject;
import eSchool.BL.BasicListObject;
import eSchool.BL.CriteriosPesquisa;
import eSchool.BL.Docente;
import eSchool.BL.Docentes;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.table.TableModel;

public class UIConectorDocente implements IUIConector {

    private int tipo;
    private BasicListObject lista;
    private BasicEntityObject detalhe;

    public UIConectorDocente() {
        this.tipo = 2;
        lista = new Docentes();
        detalhe = new Docente();
    }

    public int getTipo() {
        return tipo;
    }

    private BasicEntityObject getNovoDetalhe() {
        return new Docente();
    }

    public TableModel getLista() {
        return lista;
    }

    public TableModel getDetalhe() {
        if (detalhe == null) {
            detalhe = getNovoDetalhe();
        }

        return detalhe;
    }

    public TableModel pesquisaLista(CriteriosPesquisa criterios) {
        try {
            lista = DataState.getConnection().getDocentes(criterios);
        } catch (Exception ex) {
            Logger.getLogger(UIConectorDocente.class.getName()).log(Level.SEVERE, null, ex);
        }

        return lista;
    }

    public TableModel pesquisaDetalhe(CriteriosPesquisa criterios) {
        try {
            detalhe = DataState.getConnection().getDocente(Integer.parseInt(criterios.get(0).getValor().toString()));
        } catch (Exception ex) {
            Logger.getLogger(UIConectorDocente.class.getName()).log(Level.SEVERE, null, ex);
        }

        return detalhe;

    }

    public void setDataSource(BasicListObject lista, BasicEntityObject detalhe) {
        this.lista = lista;
        this.detalhe = detalhe;
    }

    public void gravaDetalhe(TableModel tableModel) {
        try {
            detalhe = (Docente) tableModel;
            DataState.getConnection().gravaDocente((Docente) detalhe);
        } catch (Exception ex) {
            Logger.getLogger(UIConectorDocente.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public TableModel getDadosExtra(int tipo, CriteriosPesquisa criterios) {
        return null;
    }
}

